﻿namespace HelloMoving
{
    internal class Program
    {
        static void Main(string[] args)
        {
            ///用WASD控制"Hello"移动
            //在原点显示Hello
            int x = 0;
            int y = 0;
            Console.SetCursorPosition(x, y);
            Console.Write("Hello");
            //定义产生移动的变量
            char move;
            do
            {
                //使变量等于用户输入字符
                move = Console.ReadKey(true).KeyChar;
                //清屏
                Console.Clear();
                switch (move)
                {
                    //输入a，左移一个单位
                    case 'a':
                        x -= 1;
                        //防止到达左边界时发生错误
                        if (x < 0)
                            x = 0;
                        Console.SetCursorPosition(x, y);
                        Console.Write("Hello");
                        break;
                    //输入d，右移一个单位
                    case 'd':
                        x += 1;
                        Console.SetCursorPosition(x, y);
                        Console.Write("Hello");
                        break;
                    //输入s，下移一个单位
                    case 's':
                        y += 1;
                        Console.SetCursorPosition(x, y);
                        Console.Write("Hello");
                        break;
                    //输入w，上移一个单位
                    case 'w':
                        y -= 1;
                        //防止到达上边界时发生错误
                        if (y < 0)
                            y = 0;
                        Console.SetCursorPosition(x, y);
                        Console.Write("Hello");
                        break;
                    //当输入的不是WASD时
                    default: Console.WriteLine("请重新输入"); break;
                }
            }
            //输入空格时结束程序
            while (move != ' ');
        }
    }
}